package 网络编程TCP通信.多发多收;

import java.io.DataOutputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;

public class Client {
    public static void main(String[] args) throws Exception{
        System.out.println("-----------客户端启动成功----------");
        // 目标: 完成TCP通信快速入门-客户端开发: 实现一发一收

        // 1. 创建Socket对象, 并同时请求与服务端程序的连接
        Socket socket = new Socket("127.0.0.1", 8888);

        // 2. 从socket通信管道中得到一个字节输出流, 用来发数据给服务端程序
        OutputStream os = socket.getOutputStream();

        // 3. 把低级的字节输出流包装成数据输出流
        DataOutputStream dos = new DataOutputStream(os);

        Scanner sc = new Scanner(System.in);

        while (true) {
            // 4. 开始写数据出去了
            System.out.println("请输入: ");
            String rs = sc.nextLine();
            // 判断rs是否是exit
            if ("exit".equals(rs)) {
                System.out.println("退出客户端成功");
                break;
            }
            dos.writeUTF(rs);
            dos.flush(); // 刷新数据, 防止数据还在客户端的内存中
        }
        dos.close();
        socket.close();

    }
}
